home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / diskfont.lha / diskfontdemo.s
Text File  |  1994-06-05  |  4KB  |  187 lines

  1.     section    lard,code
  2.     opt    d+,c+
  3.  
  4.     ;example of using DISKFONT library to change font in a window/screen
  5.     ;done for OZRIK from bristol (forgot your group!)
  6.     
  7. code:    include    dh0:include/system
  8.  
  9.     Lea    GFXName,A1
  10.     Moveq    #0,D0
  11.     CALLEXEC    OpenLibrary
  12.     Move.l     D0,_GfxBase
  13.     Beq    Error
  14.  
  15.     Lea    DosName,A1
  16.     Moveq    #0,D0
  17.     CALLEXEC    OpenLibrary
  18.     Move.l     D0,_DOSBase
  19.     Beq    Error
  20.  
  21.     Lea    IntName,A1
  22.     Moveq    #0,D0
  23.     CALLEXEC    OpenLibrary
  24.     Move.l    D0,_IntuitionBase
  25.     Beq    Error
  26.  
  27.     Lea    DFontName,a1
  28.     Moveq    #0,D0
  29.     CALLEXEC    OpenLibrary
  30.     Move.l    D0,_DiskfontBase
  31.  
  32.     lea    BodyFont,a0
  33.     CALLDISKFONT OpenDiskFont
  34.     move.l    d0,BodyFontHandle
  35.  
  36.     *-----------------------------------------------*
  37.  
  38.     move.l    NEWSCREEN,a0
  39.     CALLINT    OpenScreen
  40.     Move.l    D0,_MyScrBase
  41.     Beq    CloseInt
  42.  
  43.     move.l    NEWWINDOW,a0
  44.     move.l    d0,nw_Screen(a0)
  45.     CALLINT    OpenWindow
  46.     Move.l    D0,_MyWinBase
  47.     Beq    CloseInt
  48.     Move.l    D0,A0
  49.     Move.l    wd_RPort(A0),_MyWinRPort
  50.     Move.l    wd_UserPort(a0),_MyWinUserPort
  51.  
  52.     *-----------------------------------------------*
  53.  
  54. .WaitLoop    Move.l    _MyWinUserPort,A0
  55.     CALLEXEC    WaitPort
  56.     Move.l    _MyWinUserPort,A0
  57.     CALLEXEC    GetMsg
  58.     Move.l    D0,A1
  59.     Move.l    im_Class(A1),D2    ;D2=IDCMP Flags Directly
  60.     Move.w    im_Code(A1),D3    ;D3=Data ie key why class=Rawkey
  61.     Move.w    im_Qualifier(A1),D4    ;D4=things like CTRL SHIFT
  62.     Move.w    im_MouseX(a1),D5    ;D5=MouseX Coordinate
  63.     Move.w    im_MouseY(a1),D6    ;D5=MouseY Coordinate
  64.     Move.l    im_IAddress(A1),D7    ;D7=Addres of Intuition Obj ie Gadget
  65.     Movem.l    D0-D7/A0-A6,-(A7)    
  66.     CALLEXEC    ReplyMsg
  67.     Movem.l    (a7)+,D0-D7/A0-A6
  68.  
  69.     Cmp.l    #CLOSEWINDOW,D2
  70.     bne    .WaitLoop
  71.     
  72. .Exit    Move.l    _MyWinBase,A0
  73.     CALLINT    CloseWindow
  74.  
  75.     Move.l    _MyScrBase,A0
  76.     CALLINT    CloseScreen
  77.  
  78.     *-------------------------------*
  79.     
  80. CloseInt    Move.l    _IntuitionBase,A1
  81.     CALLEXEC    CloseLibrary
  82.  
  83.     Move.l    _DOSBase,A1
  84.     CALLEXEC    CloseLibrary
  85.  
  86.     Move.l    _DiskfontBase,A1
  87.     CALLEXEC    CloseLibrary
  88.  
  89.     move.l    BodyFontHandle,a1
  90.     CALLGRAF    CloseFont
  91.     move.l    BodyFontHandle,a1
  92.     CALLGRAF    RemFont
  93.  
  94.     Move.l    _GfxBase,A1
  95.     CALLEXEC    CloseLibrary
  96.  
  97.     *-------------------------------*
  98.  
  99. Error    Moveq    #0,D0
  100.     Rts
  101.  
  102.     *-------------------------------*
  103.  
  104. _MyScrBase        Dc.l    0
  105.  
  106. _MyWinBase        Dc.l    0
  107. _MyWinRPort        Dc.l    0
  108. _MyWinUserPort    Dc.l    0
  109. _MyWinVPort        Dc.l    0
  110.  
  111. BodyFontHandle:    dc.l    0
  112.  
  113. _IntuitionBase    dc.l    0
  114. _DOSBase        dc.l    0
  115. _GfxBase        dc.l    0
  116. _DiskfontBase    dc.l    0
  117.  
  118. GFXName        GRAFNAME
  119. IntName        INTNAME
  120. DosName        DOSNAME
  121. DFontName        DISKFONTNAME    
  122.         even
  123.  
  124.  
  125. BodyFont:    dc.l    BodyFontName
  126.     dc.w    8
  127.     dc.b    0        ; style 
  128.     dc.b    0        ; flags
  129.  
  130. BodyFontName:
  131.     dc.b    'DPaint.font',0
  132.     cnop 0,2
  133.  
  134. *---------------------------------------------------
  135. * Gadgets created with PowerSource V3.0
  136. * which is (c) Copyright 1990-91 by Jaba Development
  137. * written by Jan van den Baard
  138. *---------------------------------------------------
  139.  
  140. RenderTexts0:
  141.     DC.B    1,0
  142.     DC.B    $00
  143.     DC.W    17,23
  144.     DC.L    BodyFont
  145.     DC.L    RenderTextsIText0
  146.     DC.L    0
  147.  
  148. RenderTextsIText0:
  149.     DC.B    'Hi martin, this is some text',0
  150.     CNOP    0,2
  151.  
  152. SpecialGadget:
  153.     DC.L    0
  154.     DC.W    0,0,1,1,$0003,0,$0001
  155.     DC.L    0,0,RenderTexts0,0,0
  156.     DC.W    0
  157.     DC.L    0
  158.  
  159. MyNewScreen:
  160.     DC.W    0,0,640,256
  161.     DC.W    2
  162.     DC.B    -1,-1
  163.     DC.W    $8000
  164.     DC.W    $0001
  165.     DC.L    0,0,0,0
  166.  
  167. new_window:
  168.     DC.W    50,25,407,58
  169.     DC.B    0,1
  170.     DC.L    $00000260
  171.     DC.L    $0002100F
  172.     DC.L    SpecialGadget,0
  173.     DC.L    new_window_title
  174.     DC.L    0,0
  175.     DC.W    150,50,640,256,$000F
  176.  
  177. new_window_title:
  178.     DC.B    'Work Window',0
  179.     CNOP    0,2
  180.  
  181.  
  182. NEWWINDOW:   DC.L   new_window
  183. WDBACKFILL   EQU    0
  184. NEWSCREEN:   DC.L   MyNewScreen
  185. FIRSTTEXT:   DC.L   RenderTexts0
  186.  
  187.